<html>
<head><meta charset="utf-8"><title>Starting crate build before the dependencies are ready · t-compiler/wg-pipelining · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/index.html">t-compiler/wg-pipelining</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/Starting.20crate.20build.20before.20the.20dependencies.20are.20ready.html">Starting crate build before the dependencies are ready</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="164378533"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/Starting%20crate%20build%20before%20the%20dependencies%20are%20ready/near/164378533" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/Starting.20crate.20build.20before.20the.20dependencies.20are.20ready.html#164378533">(Apr 28 2019 at 09:27)</a>:</h4>
<p>We actually can go pretty far without dependencies available (lexing, parsing, partial name resolution / expansion), especially is macros from other crates are not used.</p>
<p>It's interesting how much effect on times that would have.</p>



<a name="164378664"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/Starting%20crate%20build%20before%20the%20dependencies%20are%20ready/near/164378664" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/Starting.20crate.20build.20before.20the.20dependencies.20are.20ready.html#164378664">(Apr 28 2019 at 09:31)</a>:</h4>
<p>Even import resolution / expansion can be done "selectively" by avoiding dependency crates until they are ready.<br>
The fix-point algorithm can proceed until it's stuck, but now "stuck" would have two distinct reasons - "stuck because dependencies are not ready" and "just stuck", the first would block and wait and the second would report an error.</p>



<a name="164378791"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/195180-t-compiler/wg-pipelining/topic/Starting%20crate%20build%20before%20the%20dependencies%20are%20ready/near/164378791" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Vadim Petrochenkov <a href="https://rust-lang.github.io/zulip_archive/stream/195180-t-compiler/wg-pipelining/topic/Starting.20crate.20build.20before.20the.20dependencies.20are.20ready.html#164378791">(Apr 28 2019 at 09:35)</a>:</h4>
<p>IIRC, <span class="user-mention" data-user-id="119009">@eddyb</span>  had some thoughts about querifying the whole multi-crate build rather than a single crate (which seems to be a pretty much the same thing).</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>